from base.datatypes.xsd.XSDDatatype import XSDDatatype
from base.datatypes.xsd.impl.XSDFloat import XSDFloat
from base.datatypes.xsd.impl.XSDDouble import XSDDouble
from base.datatypes.xsd.impl.XSDBaseNumericType import XSDBaseNumericType
from base.datatypes.xsd.impl.XSDByteType import XSDByteType
from base.datatypes.xsd.impl.XSDBaseStringType import XSDBaseStringType
from base.datatypes.xsd.impl.XSDPlainType import XSDPlainType
from base.datatypes.xsd.XSDhexBinary import XSDhexBinary
from base.datatypes.xsd.XSDbase64Binary import XSDbase64Binary
from base.datatypes.xsd.impl.XSDTimeType import XSDTimeType
from base.datatypes.xsd.impl.XSDDateTimeType import XSDDateTimeType
from base.datatypes.xsd.impl.XSDDateTimeStampType import XSDDateTimeStampType
from base.datatypes.xsd.impl.XSDDurationType import XSDDurationType
from base.datatypes.xsd.impl.XSDDayTimeDurationType import XSDDayTimeDurationType
from base.datatypes.xsd.impl.XSDDayType import XSDDayType
from base.datatypes.xsd.impl.XSDMonthType import XSDMonthType
from base.datatypes.xsd.impl.XSDYearType import XSDYearType
from base.datatypes.xsd.impl.XSDYearMonthType import XSDYearMonthType
from base.datatypes.xsd.impl.XSDMonthDayType import XSDMonthDayType
from base.datatypes.xsd.impl.XSDYearMonthDurationType import XSDYearMonthDurationType
from base.datatypes.xsd.impl.XSDDateType import XSDDateType

class XSDDatatypeInstances:

    '''
     * Datatype representing xsd:float
    '''
    # param
    # return XSDDatatype
    XSDfloat = XSDFloat("float")

    '''
     * Datatype representing xsd:double
    '''
    # param
    # return XSDDatatype
    XSDdouble = XSDDouble("double")

    '''
     * Datatype representing xsd:int
    '''
    # param
    # return
    XSDint = XSDBaseNumericType("int")

    '''
     * Datatype representing xsd:long
    '''
    # param
    # return
    XSDlong = XSDBaseNumericType("long")

    '''
     * Datatype representing xsd:short
    '''
    # param
    # return
    XSDshort = XSDBaseNumericType("short")

    '''
     * Datatype representing xsd:byte
    '''
    # param
    # return
    XSDbyte = XSDByteType("byte")

    '''
     * Datatype representing xsd:unsignedByte
    '''
    # param
    # return
    XSDunsignedByte = XSDBaseNumericType("unsignedByte")

    '''
     * Datatype representing xsd:unsignedShort
    '''
    # param
    # return
    XSDunsignedShort = XSDBaseNumericType("unsignedShort")

    '''
     * Datatype representing xsd:unsignedInt
    '''
    # param
    # return
    XSDunsignedInt = XSDBaseNumericType("unsignedInt")

    '''
     * Datatype representing xsd:unsignedLong
    '''
    # param
    # return
    XSDunsignedLong = XSDBaseNumericType("unsignedLong")

    '''
     * Datatype representing xsd:decimal
    '''
    # param
    # return
    XSDdecimal = XSDBaseNumericType("decimal")

    ''' * Datatype representing xsd:precisionDecimal https:#www.w3.org/TR/xsd-precisionDecimal/'''
    # Not a derived type of xsd:decimal.
    ## param
    # return
    #XSDprecisionDecimal = XSDPRecisionDecimal("precisionDecimal")

    '''
     * Datatype representing xsd:integer
    '''
    # param
    # return
    XSDinteger = XSDBaseNumericType("integer")

    '''
     * Datatype representing xsd:nonPositiveInteger
    '''
    # param
    # return
    XSDnonPositiveInteger = XSDBaseNumericType("nonPositiveInteger")

    '''
     * Datatype representing xsd:nonNegativeInteger
    '''
    # param
    # return
    XSDnonNegativeInteger = XSDBaseNumericType("nonNegativeInteger")

    '''
     * Datatype representing xsd:positiveInteger
    '''
    # param
    # return
    XSDpositiveInteger = XSDBaseNumericType("positiveInteger")

    '''
     * Datatype representing xsd:negativeInteger
    '''
    # param
    # return
    XSDnegativeInteger = XSDBaseNumericType("negativeInteger")

    '''
     * Datatype representing xsd:boolean
    '''
    # param
    # return
    XSDboolean = XSDDatatype("boolean")

    '''
     * Datatype representing xsd:string
    '''
    # param
    # return
    XSDstring = XSDBaseStringType("string")

    '''
     * Datatype representing xsd:normalizedString
    '''
    # param
    # return
    XSDnormalizedString = XSDBaseStringType("normalizedString")

    '''
     * Datatype representing xsd:anyURI
    '''
    # If you see this, remove commented lines.
    # Merely temporary during switch over and testing.
    # XSDanyURI = newXSDDatatype("anyURI")

    # param
    # return
    XSDanyURI = XSDPlainType("anyURI")

    '''
     * Datatype representing xsd:token
    '''
    # param
    # return
    XSDtoken = XSDBaseStringType("token")

    '''
     * Datatype representing xsd:Name
    '''
    # param
    # return
    XSDName = XSDBaseStringType("Name")

    '''
     * Datatype representing xsd:QName
    '''
    # If you see this, remove commented lines.
    # Merely temporary during switch over and testing.
    # # param
    # return
    # XSDQName = newXSDDatatype("QName")

    # param
    # return
    XSDQName = XSDPlainType("QName")

    '''
     * Datatype representing xsd:language
    '''
    # param
    # return
    XSDlanguage = XSDBaseStringType("language")

    '''
     * Datatype representing xsd:NMTOKEN
    '''
    # param
    # return
    XSDNMTOKEN = XSDBaseStringType("NMTOKEN")

    '''
     * Datatype representing xsd:ENTITY
    '''
    # param
    # return
    XSDENTITY = XSDBaseStringType("ENTITY")

    '''
     * Datatype representing xsd:ID
    '''
    # param
    # return
    XSDID = XSDBaseStringType("ID")

    '''
     * Datatype representing xsd:NCName
    '''
    # param
    # return
    XSDNCName = XSDBaseStringType("NCName")

    '''
     * Datatype representing xsd:IDREF
    '''
    # If you see this, remove commented lines.
    # Merely temporary during switch over and testing.
    ## param
    # return
    # XSDIDREF = newXSDDatatype("IDREF")

    # param
    # return
    XSDIDREF = XSDPlainType("IDREF")

    '''
     * Datatype representing xsd:NOTATION
    '''
    # If you see this, remove commented lines.
    # Merely temporary during switch over and testing.
    ## param
    # return
    # XSDNOTATION = newXSDDatatype("NOTATION")

    # param
    # return
    XSDNOTATION = XSDPlainType("NOTATION")

    '''
     * Datatype representing xsd:hexBinary
    '''
    # param
    # return
    XSDhexBinary = XSDhexBinary("hexBinary")

    '''
     * Datatype representing xsd:base64Binary
    '''
    # param
    # return
    XSDbase64Binary = XSDbase64Binary("base64Binary")

    '''
     * Datatype representing xsd:date
    '''
    # param
    # return
    XSDdate = XSDDateType("date")

    '''
     * Datatype representing xsd:time
    '''
    # param
    # return
    XSDtime = XSDTimeType("time")

    '''
     * Datatype representing xsd:dateTime
    '''
    # param
    # return
    XSDdateTime = XSDDateTimeType("dateTime")

    '''
     * Datatype representing xsd:dateTimeStamp
    '''
    # param
    # return
    XSDdateTimeStamp = XSDDateTimeStampType("dateTimeStamp")

    '''
     * Datatype representing xsd:duration
    '''
    # param
    # return
    XSDduration = XSDDurationType()

    '''
     * Datatype representing xsd:dayTimeDration
    '''
    # param
    # return
    XSDdayTimeDuration = XSDDayTimeDurationType()

    '''
     * Datatype representing xsd:yearMonthDuration
    '''
    # param
    # return
    XSDyearMonthDuration = XSDYearMonthDurationType()

    '''
     * Datatype representing xsd:gDay
    '''
    # param
    # return
    XSDgDay = XSDDayType("gDay")

    '''
     * Datatype representing xsd:gMonth
    '''
    # param
    # return
    XSDgMonth = XSDMonthType("gMonth")

    '''
     * Datatype representing xsd:gYear
    '''
    # param
    # return
    XSDgYear = XSDYearType("gYear")

    '''
     * Datatype representing xsd:gYearMonth
    '''
    # param
    # return
    XSDgYearMonth = XSDYearMonthType("gYearMonth")

    '''
     * Datatype representing xsd:gMonthDay
    '''
    # param
    # return
    XSDgMonthDay = XSDMonthDayType("gMonthDay")

    # The following are list rather than simple types and are omitted for now

    #    ''' Datatype representing xsd:ENTITIES'''
    #    # param
    # return
    XSDENTITIES = XSDBaseStringType("ENTITIES")
    #
    #    ''' Datatype representing xsd:NMTOKENS'''
    #    # param
    # return
    XSDNMTOKENS = XSDBaseStringType("NMTOKENS")
    #
    #    ''' Datatype representing xsd:IDREFS'''
    #    # param
    # return
    XSDIDREFS = XSDBaseStringType("IDREFS")